home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / aip.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,038 lines

  1. %% #define AIP 1        % Fri Jun 15 10:51:17 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For American Institute of Physics Journals
  7.  
  8.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  9.     % Copyright (C) 1985, all rights reserved.
  10.     % Copying of this file is authorized only if either
  11.     % (1) you make absolutely no changes to your copy, including name, or
  12.     % (2) if you do make changes, you name it something other than
  13.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  14.     % This restriction helps ensure that all standard styles are identical.
  15.     % The file btxbst.doc has the documentation for this style.
  16.  
  17. ENTRY
  18.   { address
  19.     author
  20.     booktitle
  21.     chapter
  22.     edition
  23.     editor
  24.     howpublished
  25.     institution
  26.     journal
  27.     key
  28.     month
  29.     note
  30.     number
  31.     organization
  32.     pages
  33.     publisher
  34.     school
  35.     series
  36.     title
  37.     type
  38.     volume
  39.     year
  40.   }
  41.   {}
  42.   { label }
  43.  
  44. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  45.  
  46. FUNCTION {init.state.consts}
  47. { #0 'before.all :=
  48.   #1 'mid.sentence :=
  49.   #2 'after.sentence :=
  50.   #3 'after.block :=
  51. }
  52.  
  53. STRINGS { s t }
  54.  
  55. FUNCTION {output.nonnull}
  56. { 's :=
  57.   output.state mid.sentence =
  58.     { ", " * write$ }
  59.     { output.state after.block =
  60.     { "," * write$
  61.       newline$
  62.       "\newblock " write$
  63.     }
  64.     { output.state before.all =
  65.         'write$
  66.         { add.period$ " " * write$ }
  67.       if$
  68.     }
  69.       if$
  70.       mid.sentence 'output.state :=
  71.     }
  72.   if$
  73.   s
  74. }
  75.  
  76. FUNCTION {output}
  77. { duplicate$ empty$
  78.     'pop$
  79.     'output.nonnull
  80.   if$
  81. }
  82.  
  83. FUNCTION {output.check}
  84. { 't :=
  85.   duplicate$ empty$
  86.     { pop$ "empty " t * " in " * cite$ * warning$ }
  87.     'output.nonnull
  88.   if$
  89. }
  90.  
  91. FUNCTION {output.bibitem}
  92. { newline$
  93.   "\bibitem{" write$
  94.   cite$ write$
  95.   "}" write$
  96.   newline$
  97.   ""
  98.   before.all 'output.state :=
  99. }
  100.  
  101. FUNCTION {fin.entry}
  102. { add.period$
  103.   write$
  104.   newline$
  105. }
  106.  
  107. FUNCTION {new.block}
  108. { output.state before.all =
  109.     'skip$
  110.     { after.block 'output.state := }
  111.   if$
  112. }
  113.  
  114. FUNCTION {new.sentence}
  115. { skip$
  116. }
  117.  
  118. FUNCTION {not}
  119. {   { #0 }
  120.     { #1 }
  121.   if$
  122. }
  123.  
  124. FUNCTION {and}
  125. {   'skip$
  126.     { pop$ #0 }
  127.   if$
  128. }
  129.  
  130. FUNCTION {or}
  131. {   { pop$ #1 }
  132.     'skip$
  133.   if$
  134. }
  135.  
  136. FUNCTION {new.block.checka}
  137. { empty$
  138.     'skip$
  139.     'new.block
  140.   if$
  141. }
  142.  
  143. FUNCTION {new.block.checkb}
  144. { empty$
  145.   swap$ empty$
  146.   and
  147.     'skip$
  148.     'new.block
  149.   if$
  150. }
  151.  
  152. FUNCTION {new.sentence.checka}
  153. { empty$
  154.     'skip$
  155.     'new.sentence
  156.   if$
  157. }
  158.  
  159. FUNCTION {new.sentence.checkb}
  160. { empty$
  161.   swap$ empty$
  162.   and
  163.     'skip$
  164.     'new.sentence
  165.   if$
  166. }
  167.  
  168. FUNCTION {field.or.null}
  169. { duplicate$ empty$
  170.     { pop$ "" }
  171.     'skip$
  172.   if$
  173. }
  174.  
  175. FUNCTION {emphasize}
  176. { duplicate$ empty$
  177.     { pop$ "" }
  178.     { "{\em " swap$ * "}" * }
  179.   if$
  180. }
  181.  
  182. FUNCTION {embolden}
  183. { duplicate$ empty$
  184.     { pop$ "" }
  185.     { "{\bf " swap$ * "}" * }
  186.   if$
  187. }
  188.  
  189. FUNCTION {paren}
  190. { duplicate$ empty$
  191.     { pop$ "" }
  192.     { "(" swap$ * ")" * }
  193.   if$
  194. }
  195.  
  196. INTEGERS { nameptr namesleft numnames }
  197.  
  198. INTEGERS { etal }
  199.  
  200. FUNCTION {format.names}
  201. { 's :=
  202.   #1 'nameptr :=
  203.   s num.names$ 'numnames :=
  204.   numnames #5 >
  205.   s numnames "{ll}" format.name$ "others" = numnames #1 > and
  206.   or 'etal :=
  207.   etal
  208.     { #1 #1 + 'namesleft := }
  209.     { numnames 'namesleft := }
  210.   if$
  211.     { namesleft #0 > }
  212.     { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
  213.       nameptr #1 >
  214.     { namesleft #1 >
  215.         { ", " * t * }
  216.         { nameptr #2 >
  217.         { "," * }
  218.         'skip$
  219.           if$
  220.           t "others" =
  221.           etal or
  222.         { " et~al." * }
  223.         { " and " * t * }
  224.           if$
  225.         }
  226.       if$
  227.     }
  228.     't
  229.       if$
  230.       nameptr #1 + 'nameptr :=
  231.       namesleft #1 - 'namesleft :=
  232.     }
  233.   while$
  234. }
  235.  
  236. FUNCTION {format.authors}
  237. { author empty$
  238.     { "" }
  239.     { author format.names }
  240.   if$
  241. }
  242.  
  243. FUNCTION {format.editors}
  244. { editor empty$
  245.     { "" }
  246.     { editor format.names
  247.       editor num.names$ #1 >
  248.     { ", editors" * }
  249.     { ", editor" * }
  250.       if$
  251.     }
  252.   if$
  253. }
  254.  
  255. FUNCTION {format.edited}
  256. { editor empty$
  257.     { "" }
  258.     { "edited by " editor format.names * }
  259.   if$
  260. }
  261.  
  262. FUNCTION {format.title}
  263. { title empty$
  264.     { "" }
  265.     { title "t" change.case$ }
  266.   if$
  267. }
  268.  
  269. FUNCTION {n.dashify}
  270. { 't :=
  271.   ""
  272.     { t empty$ not }
  273.     { t #1 #1 substring$ "-" =
  274.     { t #1 #2 substring$ "--" = not
  275.         { "--" *
  276.           t #2 global.max$ substring$ 't :=
  277.         }
  278.         {   { t #1 #1 substring$ "-" = }
  279.         { "-" *
  280.           t #2 global.max$ substring$ 't :=
  281.         }
  282.           while$
  283.         }
  284.       if$
  285.     }
  286.     { t #1 #1 substring$ *
  287.       t #2 global.max$ substring$ 't :=
  288.     }
  289.       if$
  290.     }
  291.   while$
  292. }
  293.  
  294. FUNCTION {first.page}
  295. { 't :=
  296.   ""
  297.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  298.     { t #1 #1 substring$ *
  299.       t #2 global.max$ substring$ 't :=
  300.     }
  301.   while$
  302. }
  303.  
  304. FUNCTION {format.date}
  305. { year empty$
  306.     { "" }
  307.     'year
  308.   if$
  309. }
  310.  
  311. FUNCTION {format.btitle}
  312. { title emphasize
  313. }
  314.  
  315. FUNCTION {tie.or.space.connect}
  316. { duplicate$ text.length$ #3 <
  317.     { "~" }
  318.     { " " }
  319.   if$
  320.   swap$ * *
  321. }
  322.  
  323. FUNCTION {either.or.check}
  324. { empty$
  325.     'pop$
  326.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  327.   if$
  328. }
  329.  
  330. FUNCTION {format.bvolume}
  331. { volume empty$
  332.     { "" }
  333.     { "volume" volume tie.or.space.connect
  334.       series empty$
  335.     'skip$
  336.     { " of " * series emphasize * }
  337.       if$
  338.       "volume and number" number either.or.check
  339.     }
  340.   if$
  341. }
  342.  
  343. FUNCTION {format.number.series}
  344. { volume empty$
  345.     { number empty$
  346.     { series field.or.null }
  347.     { output.state mid.sentence =
  348.         { "number" }
  349.         { "Number" }
  350.       if$
  351.       number tie.or.space.connect
  352.       series empty$
  353.         { "there's a number but no series in " cite$ * warning$ }
  354.         { " in " * series * }
  355.       if$
  356.     }
  357.       if$
  358.     }
  359.     { "" }
  360.   if$
  361. }
  362.  
  363. FUNCTION {format.edition}
  364. { edition empty$
  365.     { "" }
  366.     { output.state mid.sentence =
  367.     { edition "l" change.case$ " edition" * }
  368.     { edition "t" change.case$ " edition" * }
  369.       if$
  370.     }
  371.   if$
  372. }
  373.  
  374. INTEGERS { multiresult }
  375.  
  376. FUNCTION {multi.page.check}
  377. { 't :=
  378.   #0 'multiresult :=
  379.     { multiresult not
  380.       t empty$ not
  381.       and
  382.     }
  383.     { t #1 #1 substring$
  384.       duplicate$ "-" =
  385.       swap$ duplicate$ "," =
  386.       swap$ "+" =
  387.       or or
  388.     { #1 'multiresult := }
  389.     { t #2 global.max$ substring$ 't := }
  390.       if$
  391.     }
  392.   while$
  393.   multiresult
  394. }
  395.  
  396. FUNCTION {format.pages}
  397. { pages empty$
  398.     { "" }
  399.     { pages multi.page.check
  400.     { "pages" pages n.dashify tie.or.space.connect }
  401.     { "page" pages tie.or.space.connect }
  402.       if$
  403.     }
  404.   if$
  405. }
  406.  
  407. FUNCTION {format.pages.a}
  408. { pages empty$
  409.     { "" }
  410.     { "page" pages first.page tie.or.space.connect }
  411.   if$
  412. }
  413.  
  414. FUNCTION {format.vol.num.pages}
  415. { volume field.or.null embolden
  416.   " " swap$ * *
  417.   pages empty$
  418.     'skip$
  419.     { duplicate$ empty$
  420.     { pop$ format.pages.a }
  421.     { ", " * pages first.page * }
  422.       if$
  423.     }
  424.   if$
  425. }
  426.  
  427. FUNCTION {format.chapter.pages}
  428. { chapter empty$
  429.     'format.pages
  430.     { type empty$
  431.     { "chapter" }
  432.     { type "l" change.case$ }
  433.       if$
  434.       chapter tie.or.space.connect
  435.       pages empty$
  436.     'skip$
  437.     { ", " * format.pages * }
  438.       if$
  439.     }
  440.   if$
  441. }
  442.  
  443. FUNCTION {format.in.ed.booktitle}
  444. { booktitle empty$
  445.     { "" }
  446.     { editor empty$
  447.     { "in " booktitle emphasize * }
  448.     { "in " booktitle emphasize * ", " * format.edited * }
  449.       if$
  450.     }
  451.   if$
  452. }
  453.  
  454. FUNCTION {empty.misc.check}
  455. { author empty$ title empty$ howpublished empty$
  456.   month empty$ year empty$ note empty$
  457.   and and and and and
  458.     { "all relevant fields are empty in " cite$ * warning$ }
  459.     'skip$
  460.   if$
  461. }
  462.  
  463. FUNCTION {format.thesis.type}
  464. { type empty$
  465.     'skip$
  466.     { pop$
  467.       type "t" change.case$
  468.     }
  469.   if$
  470. }
  471.  
  472. FUNCTION {format.tr.number}
  473. { type empty$
  474.     { "Technical Report" }
  475.     'type
  476.   if$
  477.   number empty$
  478.     { "t" change.case$ }
  479.     { number tie.or.space.connect }
  480.   if$
  481. }
  482.  
  483. FUNCTION {format.article.crossref}
  484. { key empty$
  485.     { journal empty$
  486.     { "need key or journal for " cite$ * " to crossref " * crossref *
  487.       warning$
  488.       ""
  489.     }
  490.     { "In " journal * }
  491.       if$
  492.     }
  493.     { "In " key * }
  494.   if$
  495.   " \cite{" * crossref * "}" *
  496. }
  497.  
  498. FUNCTION {format.crossref.editor}
  499. { editor #1 "{vv~}{ll}" format.name$
  500.   editor num.names$ duplicate$
  501.   #2 >
  502.     { pop$ " et~al." * }
  503.     { #2 <
  504.     'skip$
  505.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  506.         { " et~al." * }
  507.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  508.       if$
  509.     }
  510.       if$
  511.     }
  512.   if$
  513. }
  514.  
  515. FUNCTION {format.book.crossref}
  516. { volume empty$
  517.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  518.       "In "
  519.     }
  520.     { "Volume" volume tie.or.space.connect
  521.       " of " *
  522.     }
  523.   if$
  524.   editor empty$
  525.   editor field.or.null author field.or.null =
  526.   or
  527.     { key empty$
  528.     { series empty$
  529.         { "need editor, key, or series for " cite$ * " to crossref " *
  530.           crossref * warning$
  531.           "" *
  532.         }
  533.         { "{\em " * series * "\/}" * }
  534.       if$
  535.     }
  536.     { key * }
  537.       if$
  538.     }
  539.     { format.crossref.editor * }
  540.   if$
  541.   " \cite{" * crossref * "}" *
  542. }
  543.  
  544. FUNCTION {format.incoll.inproc.crossref}
  545. { editor empty$
  546.   editor field.or.null author field.or.null =
  547.   or
  548.     { key empty$
  549.     { booktitle empty$
  550.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  551.           crossref * warning$
  552.           ""
  553.         }
  554.         { "In {\em " booktitle * "\/}" * }
  555.       if$
  556.     }
  557.     { "In " key * }
  558.       if$
  559.     }
  560.     { "In " format.crossref.editor * }
  561.   if$
  562.   " \cite{" * crossref * "}" *
  563. }
  564.  
  565. FUNCTION {article}
  566. { output.bibitem
  567.   format.authors "author" output.check
  568.   new.block
  569.   crossref missing$
  570.     { journal field.or.null
  571.       format.vol.num.pages 
  572.       format.date empty$
  573.     'skip$
  574.     { duplicate$ empty$
  575.         { pop$ format.date paren }
  576.             { " " * format.date paren * }
  577.       if$
  578.     }
  579.       if$
  580.       output
  581.     }
  582.     { format.article.crossref output.nonnull
  583.       format.pages output
  584.     }
  585.   if$
  586.   new.block
  587.   note output
  588.   fin.entry
  589. }
  590.  
  591. FUNCTION {book}
  592. { output.bibitem
  593.   author empty$
  594.     { format.editors "author and editor" output.check }
  595.     { format.authors output.nonnull
  596.       crossref missing$
  597.     { "author and editor" editor either.or.check }
  598.     'skip$
  599.       if$
  600.     }
  601.   if$
  602.   new.block
  603.   format.btitle "title" output.check
  604.   crossref missing$
  605.     { format.bvolume output
  606.       new.block
  607.       format.number.series output
  608.       new.sentence
  609.       publisher "publisher" output.check
  610.       address output
  611.     }
  612.     { new.block
  613.       format.book.crossref output.nonnull
  614.     }
  615.   if$
  616.   format.edition output
  617.   format.date "year" output.check
  618.   new.block
  619.   note output
  620.   fin.entry
  621. }
  622.  
  623. FUNCTION {booklet}
  624. { output.bibitem
  625.   format.authors output
  626.   new.block
  627.   format.title "title" output.check
  628.   howpublished address new.block.checkb
  629.   howpublished output
  630.   address output
  631.   format.date output
  632.   new.block
  633.   note output
  634.   fin.entry
  635. }
  636.  
  637. FUNCTION {inbook}
  638. { output.bibitem
  639.   author empty$
  640.     { format.editors "author and editor" output.check }
  641.     { format.authors output.nonnull
  642.       crossref missing$
  643.     { "author and editor" editor either.or.check }
  644.     'skip$
  645.       if$
  646.     }
  647.   if$
  648.   new.block
  649.   format.btitle "title" output.check
  650.   crossref missing$
  651.     { format.bvolume output
  652.       format.chapter.pages "chapter and pages" output.check
  653.       new.block
  654.       format.number.series output
  655.       new.sentence
  656.       publisher "publisher" output.check
  657.       address output
  658.     }
  659.     { format.chapter.pages "chapter and pages" output.check
  660.       new.block
  661.       format.book.crossref output.nonnull
  662.     }
  663.   if$
  664.   format.edition output
  665.   format.date "year" output.check
  666.   new.block
  667.   note output
  668.   fin.entry
  669. }
  670.  
  671. FUNCTION {incollection}
  672. { output.bibitem
  673.   format.authors "author" output.check
  674.   new.block
  675.   format.title "title" output.check
  676.   new.block
  677.   crossref missing$
  678.     { format.in.ed.booktitle "booktitle" output.check
  679.       format.bvolume output
  680.       format.number.series output
  681.       format.chapter.pages output
  682.       new.sentence
  683.       publisher "publisher" output.check
  684.       address output
  685.       format.edition output
  686.       format.date "year" output.check
  687.     }
  688.     { format.incoll.inproc.crossref output.nonnull
  689.       format.chapter.pages output
  690.     }
  691.   if$
  692.   new.block
  693.   note output
  694.   fin.entry
  695. }
  696.  
  697. FUNCTION {inproceedings}
  698. { output.bibitem
  699.   format.authors "author" output.check
  700.   new.block
  701.   format.title "title" output.check
  702.   new.block
  703.   crossref missing$
  704.     { format.in.ed.booktitle "booktitle" output.check
  705.       format.bvolume output
  706.       format.number.series output
  707.       format.pages output
  708.       address empty$
  709.     { organization publisher new.sentence.checkb
  710.       organization output
  711.       publisher output
  712.       format.date "year" output.check
  713.     }
  714.     { address output.nonnull
  715.       format.date "year" output.check
  716.       new.sentence
  717.       organization output
  718.       publisher output
  719.     }
  720.       if$
  721.     }
  722.     { format.incoll.inproc.crossref output.nonnull
  723.       format.pages output
  724.     }
  725.   if$
  726.   new.block
  727.   note output
  728.   fin.entry
  729. }
  730.  
  731. FUNCTION {conference} { inproceedings }
  732.  
  733. FUNCTION {manual}
  734. { output.bibitem
  735.   author empty$
  736.     { organization empty$
  737.     'skip$
  738.     { organization output.nonnull
  739.       address output
  740.     }
  741.       if$
  742.     }
  743.     { format.authors output.nonnull }
  744.   if$
  745.   new.block
  746.   format.btitle "title" output.check
  747.   author empty$
  748.     { organization empty$
  749.     { address new.block.checka
  750.       address output
  751.     }
  752.     'skip$
  753.       if$
  754.     }
  755.     { organization address new.block.checkb
  756.       organization output
  757.       address output
  758.     }
  759.   if$
  760.   format.edition output
  761.   format.date output
  762.   new.block
  763.   note output
  764.   fin.entry
  765. }
  766.  
  767. FUNCTION {mastersthesis}
  768. { output.bibitem
  769.   format.authors "author" output.check
  770.   new.block
  771.   format.title "title" output.check
  772.   new.block
  773.   "Master's thesis" format.thesis.type output.nonnull
  774.   school "school" output.check
  775.   address output
  776.   format.date "year" output.check
  777.   new.block
  778.   note output
  779.   fin.entry
  780. }
  781.  
  782. FUNCTION {misc}
  783. { output.bibitem
  784.   format.authors output
  785.   title howpublished new.block.checkb
  786.   format.title output
  787.   howpublished new.block.checka
  788.   howpublished output
  789.   format.date output
  790.   new.block
  791.   note output
  792.   fin.entry
  793.   empty.misc.check
  794. }
  795.  
  796. FUNCTION {phdthesis}
  797. { output.bibitem
  798.   format.authors "author" output.check
  799.   new.block
  800.   format.btitle "title" output.check
  801.   new.block
  802.   "PhD thesis" format.thesis.type output.nonnull
  803.   school "school" output.check
  804.   address output
  805.   format.date "year" output.check
  806.   new.block
  807.   note output
  808.   fin.entry
  809. }
  810.  
  811. FUNCTION {proceedings}
  812. { output.bibitem
  813.   editor empty$
  814.     { organization output }
  815.     { format.editors output.nonnull }
  816.   if$
  817.   new.block
  818.   format.btitle "title" output.check
  819.   format.bvolume output
  820.   format.number.series output
  821.   address empty$
  822.     { editor empty$
  823.     { publisher new.sentence.checka }
  824.     { organization publisher new.sentence.checkb
  825.       organization output
  826.     }
  827.       if$
  828.       publisher output
  829.       format.date "year" output.check
  830.     }
  831.     { address output.nonnull
  832.       format.date "year" output.check
  833.       new.sentence
  834.       editor empty$
  835.     'skip$
  836.     { organization output }
  837.       if$
  838.       publisher output
  839.     }
  840.   if$
  841.   new.block
  842.   note output
  843.   fin.entry
  844. }
  845.  
  846. FUNCTION {techreport}
  847. { output.bibitem
  848.   format.authors "author" output.check
  849.   new.block
  850.   format.title "title" output.check
  851.   new.block
  852.   format.tr.number output.nonnull
  853.   institution "institution" output.check
  854.   address output
  855.   format.date "year" output.check
  856.   new.block
  857.   note output
  858.   fin.entry
  859. }
  860.  
  861. FUNCTION {unpublished}
  862. { output.bibitem
  863.   format.authors "author" output.check
  864.   new.block
  865.   format.title "title" output.check
  866.   new.block
  867.   note "note" output.check
  868.   format.date output
  869.   fin.entry
  870. }
  871.  
  872. FUNCTION {default.type} { misc }
  873.  
  874. MACRO {jan} {"Jan."}
  875.  
  876. MACRO {feb} {"Feb."}
  877.  
  878. MACRO {mar} {"Mar."}
  879.  
  880. MACRO {apr} {"Apr."}
  881.  
  882. MACRO {may} {"May"}
  883.  
  884. MACRO {jun} {"June"}
  885.  
  886. MACRO {jul} {"July"}
  887.  
  888. MACRO {aug} {"Aug."}
  889.  
  890. MACRO {sep} {"Sept."}
  891.  
  892. MACRO {oct} {"Oct."}
  893.  
  894. MACRO {nov} {"Nov."}
  895.  
  896. MACRO {dec} {"Dec."}
  897.  
  898. MACRO {acmcs} {"ACM Comput. Surv."}
  899.  
  900. MACRO {acta} {"Acta Inf."}
  901.  
  902. MACRO {cacm} {"Commun. ACM"}
  903.  
  904. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  905.  
  906. MACRO {ibmsj} {"IBM Syst.~J."}
  907.  
  908. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  909.  
  910. MACRO {ieeetc} {"IEEE Trans. Comput."}
  911.  
  912. MACRO {ieeetcad}
  913.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  914.  
  915. MACRO {ipl} {"Inf. Process. Lett."}
  916.  
  917. MACRO {jacm} {"J.~ACM"}
  918.  
  919. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  920.  
  921. MACRO {scp} {"Sci. Comput. Programming"}
  922.  
  923. MACRO {sicomp} {"SIAM J. Comput."}
  924.  
  925. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  926.  
  927. MACRO {tods} {"ACM Trans. Database Syst."}
  928.  
  929. MACRO {tog} {"ACM Trans. Gr."}
  930.  
  931. MACRO {toms} {"ACM Trans. Math. Softw."}
  932.  
  933. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  934.  
  935. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  936.  
  937. MACRO {tcs} {"Theoretical Comput. Sci."}
  938.  
  939. MACRO {advp} {"Adv. Phys."}
  940. MACRO {ajp} {"Am. J. Phys."}
  941. MACRO {ao} {"Appl. Opt."}
  942. MACRO {apl} {"Appl. Phys. Lett."}
  943. MACRO {apj} {"Astrophys. J."}
  944. MACRO {baps} {"Bull. Am. Phys. Soc."}
  945. MACRO {cpc} {"Computer Phys. Comm."}
  946. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  947. MACRO {fed} {"Fusion Eng. Design"}
  948. MACRO {ft} {"Fusion Tech."}
  949. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  950. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  951. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  952. MACRO {ip} {"Infrared Phys."}
  953. MACRO {jap} {"J. Appl. Phys."}
  954. MACRO {jcp} {"J. Comput. Phys."}
  955. MACRO {jetp} {"Sov. Phys.-JETP"}
  956. MACRO {jfe} {"J. Fusion Energy"}
  957. MACRO {jfm} {"J. Fluid Mech."}
  958. MACRO {jgr} {"J. Geophys. Res."}
  959. MACRO {jmp} {"J. Math. Phys."}
  960. MACRO {jne} {"J. Nucl. Energy"}
  961. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  962. MACRO {jnm} {"J. Nucl. Mater."}
  963. MACRO {josa} {"J. Opt. Soc. Am."}
  964. MACRO {jpp} {"J. Plasma Phys."}
  965. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  966. MACRO {jvst} {"J. Vac. Sci. Technol."}
  967. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  968. MACRO {nf} {"Nucl. Fusion"}
  969. MACRO {nim} {"Nucl. Instrum. Methods"}
  970. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  971. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  972. MACRO {pf} {"Phys. Fluids"}
  973. MACRO {pfa} {"Phys. Fluids A"}
  974. MACRO {pfb} {"Phys. Fluids B"}
  975. MACRO {pl} {"Phys. Lett."}
  976. MACRO {pla} {"Phys. Lett. A"}
  977. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  978. MACRO {pp} {"Plasma Phys."}
  979. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  980. MACRO {prl} {"Phys. Rev. Lett."}
  981. MACRO {pr} {"Phys. Rev."}
  982. MACRO {pra} {"Phys. Rev. A"}
  983. MACRO {ps} {"Physica Scripta"}
  984. MACRO {rmp} {"Rev. Mod. Phys."}
  985. MACRO {rsi} {"Rev. Sci. Instrum."}
  986. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  987. MACRO {spd} {"Sov. Phys.-Dokl."}
  988. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  989. MACRO {spu} {"Sov. Phys.-Usp."}
  990.  
  991. READ
  992.  
  993. STRINGS { longest.label }
  994.  
  995. INTEGERS { number.label longest.label.width }
  996.  
  997. FUNCTION {initialize.longest.label}
  998. { "" 'longest.label :=
  999.   #1 'number.label :=
  1000.   #0 'longest.label.width :=
  1001. }
  1002.  
  1003. FUNCTION {longest.label.pass}
  1004. { number.label int.to.str$ 'label :=
  1005.   number.label #1 + 'number.label :=
  1006.   label width$ longest.label.width >
  1007.     { label 'longest.label :=
  1008.       label width$ 'longest.label.width :=
  1009.     }
  1010.     'skip$
  1011.   if$
  1012. }
  1013.  
  1014. EXECUTE {initialize.longest.label}
  1015.  
  1016. ITERATE {longest.label.pass}
  1017.  
  1018. FUNCTION {begin.bib}
  1019. { preamble$ empty$
  1020.     'skip$
  1021.     { preamble$ write$ newline$ }
  1022.   if$
  1023.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1024. }
  1025.  
  1026. EXECUTE {begin.bib}
  1027.  
  1028. EXECUTE {init.state.consts}
  1029.  
  1030. ITERATE {call.type$}
  1031.  
  1032. FUNCTION {end.bib}
  1033. { newline$
  1034.   "\end{thebibliography}" write$ newline$
  1035. }
  1036.  
  1037. EXECUTE {end.bib}
  1038.